package com.github.paicoding.forum.core.mdc;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// ElementType.METHOD 表示可用于方法上
// ElementType.TYPE 表示可用于类、接口或枚举上
@Target({ElementType.METHOD, ElementType.TYPE})
// 定义注解的生命周期：RetentionPolicy.RUNTIME 表示注解在程序运行时仍然保留，可以通过反射机制读取注解信息。
@Retention(RetentionPolicy.RUNTIME)
// 表示该注解会被包含在 Javadoc 文档中，生成文档时会显示该注解的信息
@Documented
public @interface MdcDot {
    //这是注解的一个可选属性，名为 bizCode（业务编码），默认值为空字符串。
    // 作用：用于标记当前类或方法所属的业务模块（如 "order" 表示订单业务，"user" 表示用户业务）
    // 后续可在日志上下文或追踪链路中携带该业务编码，方便按业务维度筛选日志。
    String bizCode() default "";
}
